﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.IO;
using MvcSite.Models;

namespace MvcSite.Controllers
{
    public class FotoController : Controller
    {
        //
        // GET: /Foto/

        public ActionResult Index()
        {
            return View();
        }

        public bool UploadFoto(HttpPostedFileBase file, int categoria)
        {
            try
            {
                string path = Path.Combine("/Galleria", categoria.ToString(), file.FileName);
                Foto foto = new Foto { Nome = Path.GetFileNameWithoutExtension(file.FileName), Album = categoria, Path = path, Data_Upload = DateTime.Now, Accesso = Accesso.Private };
                
                GestoreFoto.UploadFoto(foto, file);
                GestoreAlbum.IncrementNFoto(categoria);
            }
            catch ( Exception e)
            {
                string errore = e.Message;
            }

            return true;
        }

        public ActionResult LoadFoto(int id)
        {
            ViewData["Foto"] = GestoreFoto.LoadFoto(id);
            return View();
        }

        public void DeleteFoto(ElencoFoto elencoFoto)
        {
            if (elencoFoto.elenco_path != null && elencoFoto.elenco_id != null)
            {
                foreach (var pathFile in elencoFoto.elenco_path)
                {
                    if (System.IO.File.Exists(Server.MapPath(pathFile)))
                        System.IO.File.Delete(Server.MapPath(pathFile));
                }
                GestoreFoto.DeleteFoto(elencoFoto.elenco_id);
                GestoreAlbum.IncrementNFoto(elencoFoto.album, elencoFoto.elenco_id.Length);
            }
            
        }

        public ActionResult GetPresentazione(int n_foto)
        {
            ViewData["ListFoto"] = GestoreFoto.GetPresentazione(n_foto);
            return PartialView();
        }

        
    }

}
